package com.luzhikun.JSON.util;

import java.lang.reflect.Field;

/**
 * @Author Rookie Coder
 * @Description JSON工具类
 * @Date
 **/
public class JSONUtil {

    /*
     * @Author liu-miss
     * @Description 将任意类型对象转换成JSON格式的字符串返回
     * @Date 19:24 2021/5/8
     * @Param []
     * @return java.lang.String
     **/
    public String jsonObject(Object obj) {
        // 创建一个StringBuffer
        StringBuffer sb = new StringBuffer("{");
        // 1.获取当前参数对象的类对象
        Class<?> aClass = obj.getClass();
        // 2,获取这个类文件中所有的属性
        Field[] fields = aClass.getDeclaredFields();
        // 3.获取当前对象中所有属性的值
        for (int i=0;i<fields.length;i++) {
            // 确保私有权限属性可以在Class文件外部使用
            fields[i].setAccessible(true);
            // 获取每一个属性的名称
            String fileName=fields[i].getName();
            // 获取每一个属性的值
            try {
                Object o = fields[i].get(obj);
                sb.append("\"").append(fileName).append("\":").append("\"").append(o).append("\"");
                if (i<fields.length-1){
                    sb.append(",");
                }else{
                    sb.append("}");
                }
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }
        // 4.将获取的属性的值拼接为JSON格式的字符串

        return sb.toString();
    }
}

